package com.doxiaopu.students.user.mapper;

import com.doxiaopu.students.user.entity.PersonRelation;
import com.doxiaopu.students.user.entity.User;
import com.doxiaopu.students.user.vo.OrganizationTypesVO;

import java.util.List;

/**
 *  处理用户数据的持久层
 */
public interface UserMapper {
    /**
     *  插入用户数据
     * @param user  用户数据
     * @return  受影响的行数
     */
    Integer addNewUser(User user);

    /**
     * 根据用户名查询用户数据
     * @param username 用户名
     * @return 匹配用户名，没有用户匹配的数据，则返回NULL
     */
    User findByUsername(String username);
    /**
     * 修改个人信息
     * @param user  用户数据
     * @return  受影响的行数
     */
    Integer updateInfo(User user);

    /**
     * 通过id查询用户数据
     * @param id
     * @return
     */
    User getById(Integer id);

    /**
     * 根据用户类型查询所有的用户信息
     * @return 返回用户信息列表
     */
    List<User> getAllUserInfo(String phone,Integer types,Integer currentPage,Integer pageSize);

    /**
     * 查询分类用户的总条数
     * @return
     */
    Integer selectTotle(Integer types);
    /**
     * 修改商家密码
     * @param user
     * @return
     */
    Integer updatePwdInfo(User user);

    /**
     * 更改用户余额
     * @param user
     * @return
     */
    Integer updateBalance(User user);

    /**
     * 获得用户的余额
     * @param TUserId
     * @return
     */
    User getBalanceByTUserId(String TUserId);

    /**
     * 查询组织所用成员
     * @param user
     * @return
     */
    List<User> getAppCommunityUserInfo(User user);

    /**
     * 获取申请用户的所有信息
     * @param user
     * @return
     */
    List<User> getApplyUserInfo(User user);

    /**
     * 社团审核成员
     * @param organizationTypesVO
     * @return
     */
    Integer updateOrganizationTypes(OrganizationTypesVO organizationTypesVO);

    /**
     * 创建好友关系表
     * @return
     */
    Integer addChatPersonRelation(PersonRelation personRelation);

    /**
     * 通过自己的用户id查询自己的好友信息
     * @param sendPersonId
     * @return
     */
    List<PersonRelation> getChatPersonRelationByMyId(String sendPersonId);

}
